package cn.biplam.back.services.log;

import cn.biplam.common.file.TxtFile;
import cn.biplam.common.paramters.SysName;
import cn.biplam.common.tools.TOOLS;
import cn.biplam.common.wrapper.Date;
import cn.biplam.common.wrapper.ErrorMessage;

/**
 * 输出日志到文件
 * @author 	WangSong 2009-3-11 下午03:45:35
 * @version 1.0
 */
public class LogFile implements Runnable {

	private static String sPath;
	private String sMessage ;
	private ErrorMessage errorMessage;

	/**
	 * 构造方法
	 * @param sMessage
	 * @param errorMessage 
	 * @throws ErrorMessage 
	 * @throws ErrorMessage 
	 */
	public LogFile(String sMessage, ErrorMessage errorMessage) throws ErrorMessage {
		this.sMessage = sMessage;
		this.errorMessage=errorMessage;
		if(sPath==null){
			sPath = TOOLS.getValueByPropertyName(SysName.PropertiesPath, "LOG.filePath");
		}
	}

	/**
	 * 写日志到文件，日志每天一个 yyyy-mm-dd.log
	 */
	private void write()  {
		//取文件地址
		if(sPath==null){
			sPath = "d:/biplam/log/";
		}
		//生成今天的文件名
		Date mDate = new Date();
		String sName = mDate.getDateTime("yyyyMMdd")+".log";
		//判断文件是否存在，不存在先创建，然后写，存在直接写
		TxtFile mTXTOPERATE = new TxtFile(sPath,sName);
		try {
			StringBuilder sb = new StringBuilder();
			sb.append(sMessage);
			sb.append(errorMessage.getStackTraceInfo());
			mTXTOPERATE.writeln(sb.toString());
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 实现Runnable run方法
	 */
	public void run() {
		
		this.write();
		
	}

}
